package com.som.beanconvert.data1.input;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.ss.usermodel.Row;

import com.som.bean.data1.input.IpAddressAllInfo;
import com.som.beanconvert.ExcelDataParseInputInf;
import com.som.beanconvert.ExcelRowDataParseProcessInf;
import com.som.util.ExcelCellStrGet;
import com.som.util.IpAddressUtil;

/**
 * 输入数据一：ip地址总表(输入文件名为input1.xls)，输入列为两列，开始IP地址，结束IP地址(结束IP必须大于开始地址)
 * 
 * 进行数据的从excel转换到java对象
 * 
 * @author liujun
 * @date 2016年4月8日
 * @verion 0.0.1
 */
public class IpAddressAllExcelInput extends IpAddressAllInfo implements ExcelDataParseInputInf<IpAddressAllInfo>, ExcelRowDataParseProcessInf<String, IpAddressAllInfo>
{

	public IpAddressAllInfo parseBean(Row excelRow) 
	{
		IpAddressAllInfo result = new IpAddressAllInfo();

		HSSFRow row = (HSSFRow) excelRow;

		// 得到开始的ip
		HSSFCell cellip = row.getCell(0);
		result.setIpaddress(ExcelCellStrGet.getCellValue(cellip));

		// 得到结束的ip
		HSSFCell cellipend = row.getCell(1);
		result.setIpEnd(ExcelCellStrGet.getCellValue(cellipend));

		return result;
	}

	public Map<String, IpAddressAllInfo> parseRowDataProcess(IpAddressAllInfo t) 
	{
		// 将ip段转化为ip
		List<String> ipList = IpAddressUtil.getIpListBySecation(t.getIpaddress(), t.getIpEnd());

		if (null != ipList && !ipList.isEmpty())
		{
			Map<String, IpAddressAllInfo> resultMap = new LinkedHashMap<String, IpAddressAllInfo>();

			for (String ipaddress : ipList)
			{
				resultMap.put(ipaddress, t);
			}

			return resultMap;
		}

		return null;
	}

}
